let isCanceled = false;
let timer;
const myPromise = new Promise((resolve, reject) => {
    // 保存定时器的返回值，以便后续能清除它
    timer = setTimeout(() => {
        if (isCanceled) {
            reject(new Error('操作已被中断'));
            return;
        }
        // 这里假设进行一些异步操作，比如模拟读取文件等耗时操作
        const result = '模拟获取到的数据';
        resolve(result);
    }, 6000);
});

// 模拟在某个时刻决定中断操作
const interruptTimer = setTimeout(() => {
    isCanceled = true;
    // 清除正在执行的定时器，避免其回调继续执行
    clearTimeout(timer);
}, 2000);

myPromise.then(data => {
    console.log('获取到结果：', data);
}).catch(err => {
    console.log('出错了：', err);
});
